<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ProfessorControllerclass
 *
 * @author dot
 */
class ProfessorController {
    
    // Para fazer os métodos desta classe vide métodos
    // da classe AdminController.


    public function buscarProfessor($key)    {
        // inicia transação com o banco
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // instancia um repositório para Cliente
        $repository = new TRepository('Professor');

        // cria um critério de seleção de dados
       $criteria = new TCriteria;

        // ordena pelo campo id
        $criteria->setProperty('order', 'id');

        // filtra
        $criteria->add(new TFilter('id', '=', "$key"));
        // carrega os produtos que satisfazem o critério
        $professores = $repository->load($criteria);
        return $professores[0];
        TTransaction::close();
    }

public function updateProfessor($professor)    {
        // inicia transação com o banco
        // o metodo open checa se já existe uma conexão aberta
        // e somente se não houver, ele abre uma.
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // armazena o objeto
        // o metodo store se encarrega de fazer o insert na tabela
        // disciplina
        $professor->store();
        //o close é necessario por conta do commit da transação
        TTransaction::close();
    }

public function buscarDisciplina($key)    {
        // inicia transação com o banco
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // instancia um repositório para Cliente
        $repository = new TRepository('Disciplina');

        // cria um critério de seleção de dados
       $criteria = new TCriteria;

        // ordena pelo campo id
        $criteria->setProperty('order', 'id');

        // filtra
        $criteria->add(new TFilter('id', '=', "$key"));
        // carrega os produtos que satisfazem o critério
        $diarios = $repository->load($criteria);
        return $diarios[0];
        TTransaction::close();
    }

    public function buscarTurma($key)    {
        // inicia transação com o banco
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // instancia um repositório para Cliente
        $repository = new TRepository('Turma');

        // cria um critério de seleção de dados
       $criteria = new TCriteria;

        // ordena pelo campo id
        $criteria->setProperty('order', 'id');

        // filtra
        $criteria->add(new TFilter('FK_ID_professor', '=', "$key"));
        // carrega os produtos que satisfazem o critério
        $diarios = $repository->load($criteria);
        TTransaction::close();
        return $diarios;
    }

public function buscarSMS($key2,$key3)    {
        // inicia transação com o banco
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // instancia um repositório para Cliente
        $repository = new TRepository('SMS');

        // cria um critério de seleção de dados
       $criteria = new TCriteria;

        // ordena pelo campo id
        $criteria->setProperty('order', 'data_envio');

        // filtra
        $criteria->add(new TFilter('FK_ID_disciplina', '=', "$key2"));
        $criteria->add(new TFilter('FK_ID_turma', '=', "$key3"));
        // carrega os produtos que satisfazem o critério
        $diarios = $repository->load($criteria);
        TTransaction::close();
        return $diarios;
    }

public function salvarSMS($sms)    {   
        // inicia transação com o banco
        // o metodo open checa se já existe uma conexão aberta
        // e somente se não houver, ele abre uma.
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // armazena o objeto
        // o metodo store se encarrega de fazer o insert na tabela
        // disciplina
        $sms->store();
        //o close é necessario por conta do commit da transação
        TTransaction::close();
    }

public function buscarAluno($key)    {
        // inicia transação com o banco
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // instancia um repositório para Cliente
        $repository = new TRepository('Aluno');

        // cria um critério de seleção de dados
       $criteria = new TCriteria;

        // ordena pelo campo id
        $criteria->setProperty('order', 'id');

        // filtra
        $criteria->add(new TFilter('id', '=', "$key"));
        // carrega os produtos que satisfazem o critério
        $alunos = $repository->load($criteria);
        TTransaction::close();
        return $alunos[0];
    }


    public function buscarAlunosDiario($key1,$key2)    {
        // inicia transação com o banco
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // instancia um repositório para Cliente
        $repository = new TRepository('DiarioDeClasse');

        // cria um critério de seleção de dados
       $criteria = new TCriteria;

        // ordena pelo campo id
        $criteria->setProperty('order', 'FK_ID_turma');

        // filtra
        $criteria->add(new TFilter('FK_ID_turma', '=', "$key1"));
        $criteria->add(new TFilter('FK_ID_disciplina', '=', "$key2"));

        // carrega os produtos que satisfazem o critério
        $diarios = $repository->load($criteria);
        TTransaction::close();
        return $diarios;
    }

public function updateDiario($diario)    {
        // inicia transação com o banco
        // o metodo open checa se já existe uma conexão aberta
        // e somente se não houver, ele abre uma.
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // armazena o objeto
        // o metodo store se encarrega de fazer o insert na tabela
        // disciplina
         $diario->store();
        //o close é necessario por conta do commit da transação
        TTransaction::close();
    }

 public function buscarAlunosDiarioUnico($key1,$key2,$key3)    {
        // inicia transação com o banco
        TTransaction::open('mysql');
        TTransaction::setLogger(new TLoggerTXT('log.txt'));
        // instancia um repositório para Cliente
        $repository = new TRepository('DiarioDeClasse');

        // cria um critério de seleção de dados
       $criteria = new TCriteria;

        // ordena pelo campo id
        $criteria->setProperty('order', 'FK_ID_turma');

        // filtra
        $criteria->add(new TFilter('FK_ID_turma', '=', "$key1"));
        $criteria->add(new TFilter('FK_ID_disciplina', '=', "$key2"));
         $criteria->add(new TFilter('FK_ID_aluno', '=', "$key3"));

        // carrega os produtos que satisfazem o critério
        $diarios = $repository->load($criteria);
        TTransaction::close();
        return $diarios[0];
    }


}
?>
